package com.yuntsg.nnsfcp.front.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yuntsg.nnsfcp.entity.OrderRoleIcon;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 查收,查新,查引---> 填写委托单--> 委托信息
 * 这个表也作为核心表进行后台审核用的，添加几个字段
 *
 * </p>
 *
 * @author gcr
 * @since 2023-06-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class OrderBaseInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 申请号
     */
    private String applyId;

    /**
     * 委托姓名 公有
     */
    private String wtrName;

    /**
     * 委托日期
     */
    private String wtDate;

    /**
     * 项目组成员_专新用
     */
    private String projectMem;

    /**
     * 单位名称  公有_废弃
     */
    private String unitName;

    /**
     * 联系地址  公有_委托单位地址
     */
    private String address;

    /**
     * 电话 公有 委托单右侧电话
     */
    private String phone;

    /**
     * 邮编  公有_委托单位地址编码
     */
    private String zipCode;

    // 查新 研究方向 前台 ; 隔开
    private String researchDirection;

    /**
     * 指派被退回原因_废弃
     */
    private String assignBack;

    /**
     * 0是校内 1 是校外_废弃
     */
    private Integer schoolType;

    /**
     * 备份的原始委托单_废弃
     */
    private String backOrder;

    /**
     * 1校本部/2直属医院/3非直属医院_废弃
     */
    private String fromSchool;

    /**
     * 项目编号
     */
    private String projectNo;

    /**
     * 订单类型 1 查收 2 查引 3 查新_ 只做查新
     */
    private Integer type;

    @TableField(exist = false)
    //用于判断当前订单是 ys 也就是指的 引文分析和职称论文证明 还是ck 科研立项和成果鉴定 ys 是1 ck 是2
    private String ortype;

    @TableField(exist = false)
    private List<OrderRoleIcon> roleIcons = new ArrayList<>();

    /**
     * 审核员id
     */
//    @TableField(strategy = FieldStrategy.IGNORED)
    private Integer shId;

    /**
     * 内部查新员id
     */
//    @TableField(strategy = FieldStrategy.IGNORED)
    private Integer gyId;

    /**
     * 初级撰写员id
     */
//    @TableField(strategy = FieldStrategy.IGNORED)
    private Integer cjId;

    /**
     * 接单员id
     */
//    @TableField(strategy = FieldStrategy.IGNORED)
    private Integer jdId;

    /**
     * 学科分类_专新用
     */
    private String subjectSub;

    /**
     * 查新数据库_专新用
     */
    private String dbname;

    /**
     * 保密需求_专新用
     */
    private String privary;

    /**
     * 查新要求
     */
    private String searchRequest;

    /**
     * 检索限制人类
     */
    private String searchPep;

    /**
     * 检索限制--年带
     */
    private String searchYear;

    /**
     * 检索限制--动物
     */
    private String searchAni;

    /**
     * 订单状态, 0为未完成订单.  默认是1 一共十个状态
     */
    private Integer orderStatusType;

    /**
     * 用户名 学校登陆后名称 注册的用户名
     */
    private String userName;

    /**
     * 代理站点  默认写死_废弃
     */
    private String proxyStation;

    /**
     * 检索工具
     */
    private String searchTool;

    /**
     * 检索工具结果
     */
    private String backToolRes;


    /**
     * 加急选项
     */
    private String urgent;

    /**
     * 委托人英文名称
     */
    private String wtrNameEn;

    /**
     * 学号-工号 公有_废弃
     */
    private String studentId;

    /**
     * 邮箱  公有
     */
    private String email;

    /**
     * 文献检索范围
     */
    private String retrievalScope;

    /**
     * 存储页面备注信息_废弃
     */
    private String note;

    /**
     * 报告数量 公有
     */
    private Integer reportNum;

    /**
     * 委托机构_废弃
     */
    private String entrustInstitutions;

    /**
     * 项目来源  查新_废弃
     */
    private String projectSource;

    /**
     * 委托-电话  非必填_废弃
     */
    private String contactPhone;

    /**
     * 作者英文名 查收查引_废弃
     */
    private String authorNameEn;

    /**
     * 作者地址   查收查引_废弃
     */
    private String authorAddress;

    /**
     * 作者邮编号码 查收查引_废弃
     */
    private String authorZipCode;

    /**
     * 查新级别 查新
     */
    private String cityClass;

    /**
     * 目的(查新查收查引) _废弃
     */
    private String searchNewPurpose;

    /**
     * 目的的描述 公有_废弃
     */
    private String purposeDescribe;

    /**
     * 项目中文名 查新
     */
    private String projectNameCn;

    /**
     * 项目英文名 查新
     */
    private String projectNameEn;

    /**
     * 国家类型 查新
     */
    private String nationalClass;

    /**
     * 查新点 查新
     */
    private String cxPoints;

    /**
     * 科学技术要点 查新_废弃
     */
    private String cxMainPoints;

    /**
     * 检索词
     */
    private String searchKey;

    /**
     * 馆员填写的中文检索词_废弃
     */
    private String searchKeyCn;

    /**
     * 馆员填写的英文检索词
     */
    private String searchKeyEn;

    // 查新咨询要求 报告使用
    private String noveltyConsultingRe;

    /**
     * 资料目录 查新
     */
    private String dataDirectory;

    /**
     * 项目背景下 - 参考文献.  用户可以输入纯文本  查新
     */
    private String reference;

    /**
     * 检索策略 查新
     */
    private String searchStrategy;

    /**
     * 馆员检索策略 中文
     */
    private String searchStrategyCn;

    /**
     * 馆员检索策略 英文_废弃
     */
    private String searchStrategyEn;

    /**
     * 检索词-英文 查新_废弃
     */
    private String searchWordEn;

    /**
     * 检索词-中文 查新_废弃
     */
    private String searchWordCn;

    /**
     * 密切相关文献
     */
    private String closeArticle;

    /**
     * 密切相关专利_废弃
     */
    private String closeAbstract;

    /**
     * 检索结果 查新
     */
    private String searchResult;

    /**
     * 查新合同路径
     */
    private String chaxinContract;

    /**
     * 合同备份路径_废弃
     */
    private String chaxinContractBack;

    /**
     * 用于存放所有类型的报告 富文本类型_废弃
     */
    private String resultReport;

    /**
     * 存放生成的word报告
     */
    private String resultReportWord;

    /**
     * 存放生成的pdf报告
     */
    private String resultReportPdf;

    /**
     * 存放生成的pdf报告带签名盖章
     */
    private String resultReportPdfSig;

    /**
     * 存放备份的原始生成word路径_废弃
     */
    private String resultReportWordBack;

    /**
     * 查新结论
     */
    private String chaxinConclusion;


    /**
     * 下面五个字段是检索工具相关
     * 检索结果工具总数
     */
    private String backTools;

    /**
     * 检索结果年限
     */
    private String backYear;

    /**
     * 检索文献总量
     */
    private String backAllsize;

    /**
     * 检出文献量
     */
    private String backMatch;

    /**
     * 密切相关文献量
     */
    private String backMiqie;


    /**
     * 检索库-检索时间-期刊-因子-当年-今年_废弃
     */
    private String repositoryPartitionIds;

    /**
     * 用户上传引用的文件,-存储服务器路径_废弃
     */
    private String quotefile;

    /**
     * 0为第一作者，1为共同第一作者，2为通讯作者，3共同通讯作者，4其它作者_废弃
     */
    private String firstAuthor;

    /**
     * 1:作者外他引(默认),  2:和作者外的他引,3:全部引用_废弃
     */
    private String citationStatus;

    /**
     * 填写查收查引委托单上传的文件/4中检索方式_废弃
     */
    private String cycsFile;

    /**
     * 用户手动添加的wos文章信息(修改为 查引时用户上传的word文档)_废弃
     */
    private String userManuallyAdd;

    /**
     * 论文清单 _废弃
     */
    private String paperList;

    /**
     * 支付状态 0是未支付 1 已支付_废弃
     */
    private Integer payStatus;

    /**
     * 查新员查询状态 0是未查询 1是查询_废弃
     */
    private String searchStatus;

    /**
     * 支付方式 1内转 2 是对公 3 现金_废弃
     */
    private Integer payWay;

    /**
     * 担保人_废弃
     */
    private String guarantor;

    /**
     * 总金额_废弃
     */
    private Integer totalFee;

    /**
     * 费用说明_废弃
     */
    private String feeNote;

    /**
     * 本应该完成的日期, 根据天数计算出日期
     */
    private LocalDate shouldTime;

    /**
     * 订单需要的时间(天数-用户勾选)
     */
    private String needDays;

    /**
     * 0国内, 1国内外(用户勾选)_废弃
     */
    private String countriesScope;

    /**
     * 上传查新合同_废弃
     */
    private String uploadReport;

    /**
     * 缴费凭证_废弃
     */
    private String payJpg;

    /**
     * 上传xps_废弃
     */
    private String xps;

    /**
     * 上传doc_废弃
     */
    private String doc;

    /**
     * 上传png_废弃
     */
    private String png;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 物流单号_废弃
     */
    private String expressno;

    /**
     * 物流类型  来源是从express_no表来源的数据_废弃
     */
    private Integer expresstype;


    /**
     * 是不是已经发放 1 未发放 2 已发放
     */
    private Integer isSend;


    /**
     * 获取报告的方式/快递/自取_废弃
     */
    private String getReportWay;

    /**
     * 保存当前订单的发票数据 关联invoice_info表_废弃
     */
    private String invoice;

    /**
     * 订单创建时间
     */
    private LocalDateTime addtime;

    /**
     * 委托时间_word获取的
     */
    private String addtimeWord;

    /**
     * 订单结束时间 快递发出就选择停止
     */
    private LocalDateTime endtime;

    /**
     * 订单退回次数，只能退回一次_废弃
     */
    private Integer orderBackNum;

    /**
     * 死循环计算被引状态 1 完成 2进行中 3 等待中_废弃
     */
    private Integer citedStatus;

    @TableField(exist = false)
    /*
     * 下一步的操作
     * */
    private String nextoperation;

    @TableField(exist = false)
    /*
     * 存放wosdetail数据
     * */
    private List<Wosdetail> wosdetailList;

    @TableField(exist = false)
    /*
     * 用来判断当前状态是不是当前登录人可以操作的
     * 0 是可以操作 1 是不可以操作
     * 2019年8月7日10:03:38 因为int 的默认值需要改成1 和2 1是允许 2 是不允许
     * */
    private int allowOperator;


    @TableField(exist = false)
    private int count;

    @TableField(exist = false)
    private Integer payicbcStatus;

    //前台附件集合
    @TableField(exist = false)
    private List<OrderFiles> fls;


    @TableField(exist = false)
    private String gyidstr;//馆员人名

    @TableField(exist = false)
    private String cxName;//  查新员人名

    //判断这个订单是校内还是校外 0是 校内 1是校外
    @TableField(exist = false)
    private Integer iswai;

    @TableField(exist = false)
    private List<String> referenceList; //用于前台显示把 reference 改成数组

    @TableField(exist = false)
    private String addtimestr;

    //结束日期
    @TableField(exist = false)
    private String endtimestr;

    //封面使用的id gyid
    @TableField(exist = false)
    private String slrid;

    //=========ljx=======================
    @TableField(exist = false)
    /**
     * 受理人
     */
    private String acceptPerson;

    @TableField(exist = false)
    /**
     * 受理人
     */
    private Integer messageSize;

    @TableField(exist = false)
    /**
     * 院系
     */
    private String departments;

    @TableField(exist = false)
    /**
     * 订单状态中文名
     */
    private String orderStatusName;

    @TableField(exist = false)
    /**
     * 订单类型中文名
     */
    private String orderTypeName;
    //=======ljx=========================


}
